package com.tbit.uqbike.service.business;

import com.tbit.uqbike.object.pojo.dto.*;
import com.tbit.uqbike.object.pojo.vo.DepositDetailVO;
import com.tbit.uqbike.object.pojo.vo.DepositIncomeVO;
import com.tbit.uqbike.object.pojo.vo.DepositTotalDetailVO;
import com.tbit.uqbike.object.pojo.vo.DepositTotalIncomeVO;
import com.tbit.common.entity.view.PageResult;

import java.io.File;
import java.util.List;

/**
 * 押金统计Service
 *
 * @AUTHOR: wei.xing
 * @DATE: 2022-11-11 14:26
 **/
public interface DepositStatService {

    /**
     * 查询数据截止时间
     *
     * @param accountIds
     * @return
     */
    Long getLastTime(List<Integer> accountIds);

    /**
     * 获取押金详情的汇总
     *
     * @param dto
     * @return
     */
    DepositTotalDetailVO getTotalDetail(StatDetailDTO dto);


    /**
     * 获取押金详情的分页
     *
     * @param pageDTO
     * @return
     */
    PageResult<DepositDetailVO> getDetailPage(StatDetailPageDTO pageDTO);

    /**
     * 押金详情的账单下载
     *
     * @param dto
     * @return
     */
    String exportDetail(StatDetailDownloadDTO dto);

    /**
     * 获取押金收支明细的分页
     *
     * @param pageDTO
     * @return
     */
    PageResult<DepositIncomeVO> getIncomeDetailPage(DepositIncomePageDTO pageDTO);


    DepositTotalIncomeVO getTotalIncome(DepositIncomeDTO dto);

    String exportIncome(DepositIncomeDownloadDTO dto);

    public File exportIncome(DepositIncomeDownloadDTO dto, File tempFile);


}
